﻿using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using TomNet.AspNetCore.Mvc;

namespace TomNet.Demo.Web.Controllers
{
    public class LogController : ApiControllerBase
    {
        private readonly ILogger _logger;

        // 注意：在其他的项目中，比如Service中，也应该采用此方法来注入日志组件
        public LogController(ILoggerFactory factory)
        {
            _logger = factory.CreateLogger(GetType());
            // 这里不能用基类中的Logger，因为上下文还未被赋值          
            _logger.LogWarning("构造函数中的日志用法");
        }

        [HttpGet]
        public IActionResult Get()
        {
            // 这里则可以使用基类中的Logger
            Logger.LogWarning("普通方法的日志用法");
            return Ok("日志测试");
        }
    }
}
